/* 
  ES5 中是如何实现面向对象的？ 构造函数+原型
  ES6 中出现了 class ，因此，在 ES6 中可以使用 class 来实现面向对象

  class 仅仅是一个语法形式，用来实现 JS 中的面向对象。
  但是， JS 语言的本质是不会发生变化。本质就是通过 构造函数+原型 实现的面向对象

  class 将 属性 和 方法 整合到一个class中，语法更加合理！

  继承：想要实现继承，至少需要两个类：子类 和 父类
    子类 可以继承 父类， 继承后：子类 就可以使用 父类中所有的属性或方法了

  在 JS 中，通过 class 继承以后，
    1 子类实例对象中就具有了 父类 的实例属性了
    2 子类实例对象可以直接使用父类中提供的实例方法
*/

class Person {
  constructor(age = 100) {
    this.name = '女娲娘娘'
    this.age = age
  }
  say () {
    console.log(`我是${this.name},今年${this.age}`)

  }
}

class Chinese extends Person {
  constructor(age) {
    super(age)
    this.name = '中国人'
  }
  high () {
    super.say()
    console.log(1231)
  }
}


const p1 = new Chinese(18)
console.log(p1)
p1.high()

